Control method and information processing apparatus

ABSTRACT

A control method of an information processing apparatus on which an expansion application configured to expand a function of print data generation software configured to generate print data runs, is provided. The control method comprises obtaining attribute data on a printing apparatus, the attribute data being output from the printing apparatus, obtaining data indicating a print function, and adding information related to a specific function based on attribute information included in the obtained attribute data if information indicating the specific function is not included in the obtained data indicating the print function. A setting screen including a setting item of the specific function is displayed based on the added information related to the specific function.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.17/119,525, filed Dec. 11, 2020, which claims the benefit of JapanesePatent Application No. 2019-239038, filed Dec. 27, 2019, both of whichare hereby incorporated by reference herein in their entirety.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention relates to a control method and an informationprocessing apparatus. In particular, the present invention relates to atechnique for an expansion application.

Description of the Related Art

Software for controlling a printing apparatus has been known. Thesoftware issues a print instruction to a printing apparatus connected toa host computer by using a printer driver installed on the hostcomputer. An operating system (OS) that is basic software is installedon the host computer. The printer driver is configured according tospecifications defined by the OS, and runs when called by the OS.Vendors providing printing apparatuses can provide means for issuing aprint instruction to the printing apparatuses using the OS by providingprinter drivers conforming to the OS specifications.

In recent years, Windows® has provided a standard class driver(hereinafter, also referred to as a “standard driver”) that can be usedin common with printing apparatuses provided by multiple vendors. Such astandard driver is included in an OS package, and the driver can easilybe used by connecting a printing apparatus to the host computer. Thisconveniently eliminates the need to install a model-specific printerdriver suitable for the printing apparatus separately. Print functionscan be specified to the standard driver depending on PrintCapabilitiesgenerated based on information obtained from the connected printingapparatus. A user who uses the standard driver can thus designate theprint functions corresponding to the capabilities of the connectedprinting apparatus despite the use of a single standard driver.

The standard driver can be associated with a function-expandingapplication (hereinafter, also referred to as an “expansionapplication”). The expansion application can be provided by a vendorproviding the printing apparatus. By the provision of the expansionapplication, the vendor can provide functions (expansion functions)unable to be implemented by the standard driver alone. Japanese PatentApplication Laid-Open No. 2019-74906 discusses a technique for expandinga function such as a stamping function by an expansion application.

SUMMARY OF THE INVENTION

The expansion application discussed in Japanese Patent Laid-Open No.2019-74906 can edit a spool file to be passed to a standard driver. Theexpansion application thus implements a stamping function by editing thespool file to insert a stamp. The spool file is converted into printdata (in Japanese Patent Laid-Open No. 2019-74906, referred to as aprint command) by the standard driver and transmitted to a printingapparatus.

However, further contrivances may be desirable for the expansionapplication, which expands functions of the standard driver, to providea better function.

An aspect of the present invention is to eliminate the above-mentionedproblem with conventional technology.

A feature of the present invention is to provide a technique for anexpansion application for expanding a function of a standard driver toprovide a better function.

According to a first aspect of the present invention, there is provideda control method of an information processing apparatus on which anexpansion application configured to expand a function of print datageneration software configured to generate print data runs, the controlmethod comprising: obtaining attribute data on a printing apparatus, theattribute data being output from the printing apparatus; obtaining dataindicating a print function; and adding information related to aspecific function based on attribute information included in theobtained attribute data if information indicating the specific functionis not included in the obtained data indicating the print function,wherein a setting screen including a setting item of the specificfunction is displayed based on the added information related to thespecific function.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention.

FIG. 1 is a block diagram illustrating a hardware configuration of aprinting system.

FIGS. 2A and 2B are block configuration diagrams of the printing system.

FIG. 3 is a flowchart illustrating print function information editingprocessing of a print function expansion unit.

FIGS. 4A and 4B illustrate an example of a Get-Printer-Attributesresponse and an example of Validate-Job operation data.

FIG. 5 illustrates an example of an expansion function list

FIGS. 6A and 6B illustrate examples of Print Device Capabilities (PDC).

FIG. 7 illustrates an example of a function map list.

FIGS. 8A to 8C illustrate examples of an added function list.

FIG. 9 illustrates an example of PrintCapabilities.

FIG. 10 illustrates an example of a screen displayed by a print settingscreen expansion unit.

FIG. 11 is a flowchart illustrating print data editing processing of aprint data editing unit.

FIG. 12 is a flowchart illustrating print function information editingprocessing of a print function expansion unit.

FIGS. 13A and 13B illustrate examples of the PDC.

DESCRIPTION OF THE EMBODIMENTS

Exemplary embodiments will now be described in detail with reference tothe accompanying drawings. The following exemplary embodiments are notintended to limit the invention set forth in the claims. While theexemplary embodiments describe a plurality of features, not all of theplurality of features is indispensable to the invention, and theplurality of features may be freely combined. In the accompanyingdrawings, the same or similar components are designated by the samereference numerals. A redundant description will be omitted.

First Embodiment Hardware Configuration of Printing System

FIG. 1 is a block diagram illustrating a hardware configuration of aprinting system according to a first exemplary embodiment. In thediagram, a host computer 101 is an example of an information processingapparatus. The host computer 101 includes an input interface 110, acentral processing unit (CPU) 111, a read-only memory (ROM) 112, arandom access memory (RAM) 113, an external storage device 114, anoutput interface 115, and an input/output interface 116. Input devices,such as a keyboard 118 and a pointing device 117, are connected to theinput interface 110. A display device, such as a display unit 119, isconnected to the output interface 115.

The ROM 112 stores an initialization program. The external storagedevice 114 stores a group of application programs, an operating system(OS), print data generation software, and other various types of data.The RAM 113 works as, for example, a work memory for various programsstored in the external storage device 114 executes.

In the present exemplary embodiment, the CPU 111 performs functions ofthe host computer 101 and processes related to a flowchart, byperforming processing based on the procedures of programs stored in theROM 112. The functions of the host computer 101 and the flowchart willbe described below. A printing apparatus 102, which is a device, isconnected to the host computer 101 via the input/output interface 116.In this example, the host computer 101 and the printing apparatus 102are separately configured. However, the host computer 101 and theprinting apparatus 102 may be configured as a single informationprocessing apparatus. The printing apparatus 102 will be described as aninkjet printer, which performs printing by discharging ink to a sheetsurface, as an example. However, other methods (e.g.,electrophotographic method) may be used for performing printing. Thehost computer 101 may also be a desktop personal computer, a smartphone,or a notebook personal computer.

Configuration of Printing System

FIGS. 2A and 2B are diagrams schematically illustrating a configurationof the printing system. The following description will be given on theassumption that the printing system uses a host computer 101 on whichMicrosoft® Windows® 10 is installed as an OS. FIG. 2A is a diagramillustrating a typical configuration in a case where an expansionapplication 204 is not associated with print data generation software202 and the printing apparatus 102.

A drawing application 201 is software for generating contents (drawingdata) to be printed. Examples of the software include a documentgeneration application and a spreadsheet application. If the drawingapplication 201 receives a print request from a user, the drawingapplication 201 issues a print instruction to the OS. The printinstruction includes print setting information for giving instructionsabout operation of the print data generation software 202 and theprinting apparatus 102. The print setting information is also referredto as a PrintTicket (hereinafter, PT).

To output the print setting information, the drawing application 201 candisplay a print setting screen provided any one of the print datageneration software 202, the OS, and the drawing application 201. Theprint setting screen includes setting items (hereinafter, also referredto as “control items”) indicating settable print functions and controlitems indicating setting values of the print functions, based oncapability information (information that can be set as print settings)obtained from the print data generation software 202. The capabilityinformation is also referred to as PrintCapabilities (PC). The printdata generation software 202 determines the PC based on print functioninformation 203. The print function information 203 is data indicatingprint function. The data describes all settable print functions andsetting values of the print functions, and an exclusive relationshipbetween the setting values. The print function information 203 is alsoreferred to as Print Device Capabilities (PDC). The print functioninformation 203 is included in a configuration file of the print datageneration software 202, and located in the external storage device 114as an immutable file. Alternatively, the print function information 203can be dynamically generated by the print data generation software 202.Specifically, the print data generation software 202 or the OS can beconfigured to obtain attribute data on the printing apparatus 102 fromthe printing apparatus 102, and generate the print function information203 based on attribute information included in the obtained attributedata. In a case where the print function information 203 is dynamicallygenerated, the generated print function information 203 can be edited.The attribute data on the printing apparatus 102 obtained from theprinting apparatus 102 will be described below with reference to FIG.4A.

As described above, the print data generation software 202 can beconfigured such that the user can designate a print function orfunctions usable by each printing apparatus 102, depending on theprinting apparatus 102 connected. More specifically, the print datageneration software 202 can be configured such that the user candesignate usable print functions depending on the connected printingapparatuses, even if printing apparatuses having different functions orprinting apparatuses developed by different vendors are connected. Inthe following description, a configuration using the Internet PrintingProtocol (IPP) Class Driver included in Windows 10 will be described asthe print data generation software 202. The IPP Class Driver is aprinter driver for performing print processing according to a standardprinting protocol specification called IPP. The IPP Class Driver isincluded in the OS package. The IPP Class Driver is not a printer driverspecific to the model of the printing apparatus 102, but a standardclass driver usable by a plurality of printing apparatuses in common.The IPP Class Driver obtains the attribute data on the connectedprinting apparatus 102 and generates the print function information 203based on the attribute data so that the user can designate a printfunction or functions supported by the connected printing apparatus 102.

The OS generates intermediate data (also referred to as input data)based on the print instruction output from the drawing application 201,and passes the intermediate data to the print data generation software202. The data that the drawing application 201 outputs for printing isGraphic Device Interface (GDI) data or Extensible Markup Language (XML)Paper Specification (XPS) data. In a case where the IPP Class Driver isused as the print data generation software 202 and the data output fromthe drawing application 201 is GDI data, the OS converts the GDI dataoutput from the drawing application 201 into XPS data. The OS thenpasses the converted XPS data to the print data generation software 202as intermediate data. In a case where the data output from the drawingapplication 201 is XPS data, the OS passes the XPS data to the printdata generation software 202 as intermediate data. The intermediate dataincludes drawing data, which is information about the picture to beformed on a sheet surface, and the print setting information set by theuser.

The print data generation software 202 converts the obtainedintermediate data into print data interpretable by the printingapparatus 102, and transmits the print data to the printing apparatus102. The print data includes the drawing data, which is the informationabout the picture to be formed on the sheet surface, and print settingattribute information generated based on the print setting informationset by the user. The print setting attribute information is attributeinformation for designating print settings. Details will be describedbelow with reference to FIG. 4B.

The printing apparatus 102 performs printing on the sheet surface basedon the print data transmitted from the print data generation software202. Here, the printing apparatus 102 prints the drawing data includedin the print data on the sheet surface through operations based on theprint setting attribute information included in the print data. Theprint setting attribute information includes attribute information andsetting values of the attribute information. The attribute informationdesignates print quality (e.g., image quality priority, and speedpriority), and print settings (e.g., two-sided printing). For example,in a case where the print setting attribute information includesattribute information for designating two-sided printing, the printingapparatus 102 performs two-sided printing.

FIG. 2B is a diagram illustrating a configuration in a case where theexpansion application 204 is associated with the print data generationsoftware 202 and the printing apparatus 102. Note that components andprocesses not mentioned below are similar to those illustrated in FIG.2A.

The expansion application 204 is software for expanding the functions ofthe print data generation software 202 and is not included in (notpackaged with) the OS in advance. The user therefore operates the hostcomputer 101 to download the expansion application 204 from a server viethe Internet and install the expansion application 204. Alternatively,the expansion application 204 may be automatically installed in responseto connection of the printing apparatus 102 to the host comp 101.Specifically, when the printing apparatus 102 is connected to the hostcomputer 101, the OS obtains device identification information from theprinting apparatus 102. The OS may download the expansion application204 corresponding to the obtained device identification information fromthe server via the Internet and install the expansion application 204.In other words, the print data generation software 202 and the expansionapplication 204 are stored in the host computer 101 as separate files.

The print data generation software 202 and the expansion application 204can be updated for upgrade. Such update processes are performed atrespective different timings. Specifically, the timing when the hostcomputer 101 obtains the print data generation software 202 is differentfrom the timing when the host computer 101 obtains the expansionapplication 204. The trigger for the host computer 101 to obtain theprint data generation software 202 is also different from the trigger toobtain the expansion application 204. When the expansion application 204is installed, the OS associates the expansion application 204 with theprint data generation software 202 and the printing apparatus 102.

The expansion application 204 described in the present exemplaryembodiment includes a print setting screen expansion unit 205, a printsetting editing unit 206, a print function expansion unit 207, and aprint data editing unit 208. The expansion application 204 also includesshared information 209 accessible from the foregoing units in common.The shared information 209 is a file stored in the external storagedevice 114 or information stored in the RAM 113. The expansionapplication 204 writes information to or reads information from theshared information 209 by using an application program interface (API)provided by the OS.

The operation of the expansion application 204 may be terminated eachtime the processing of each unit ends. In such a case, the OS activatesthe expansion application 204 each time a request to use one of theunits is given. Alternatively, for example, the OS may terminate theoperation of the expansion application 204 when the processing of theprint setting screen expansion unit 205 ends, while the OS maintains theexpansion application 204 activated even when the processing of theprint setting editing unit 206 ends.

When the drawing application 201 receives a print instruction from theuser, the drawing application 201 issues a print instruction to the OS.In the present configuration, similar to the configuration of FIG. 2A,the drawing application 201 can display a print setting screen. In thepresent configuration, the drawing application 201 displays a printsetting screen provided by the expansion application 204. Specifically,the drawing application 201 displays a print setting screen provided bythe print setting screen expansion unit 205 included in the expansionapplication 204. Whether to display the print setting screen provided bythe print setting screen expansion unit 205 depends on the user'soperation. The print setting screen expansion unit 205 will be describedin detail below with reference to FIG. 10 .

The OS generates intermediate data based on the print instruction outputfrom the drawing application 201, and passes the intermediate data tothe print setting editing unit 206. The print setting editing unit 206edits print setting information (PT) included in the generatedintermediate data, and passes the edited print setting information tothe OS. The print setting editing unit 206 can display or not display ascreen on the display unit 119. The print setting editing unit 206 candetermine whether to display the screen provided by the print settingediting unit 206 on the display unit 119 regardless of the user'soperation. Settings and functions to be always designated by the userfor each print job are therefore desirably configured such that the usercan designate the settings and functions on the screen displayed by theprint setting editing unit 206. Examples of such settings and functionsinclude secure printing using a personal identification number (PIN),and information about the destination of FAX transmission (e.g., adestination address, and a facsimile (FAX) number). In the presentexample, the print setting editing unit 206 stores PIN informationdesignated by the user into the print setting information, and passesthe print setting information to the OS. The PIN information designatedby the user may be stored in the shared information 209 accessible fromthe units in common.

The OS passes the intermediate data including the edited print settinginformation to the print data generation software 202. The print datageneration software 202 converts the intermediate data into print datainterpretable by the printing apparatus 102. The OS passes the convertedprint data to the print data editing unit 208. The OS may be furtherconfigured to pass the print setting information included in theintermediate data to the print data editing unit 208.

The print data editing unit 208 edits the print data generated by theprint data generation software 202, and passes the edited print data tothe OS. Take secure printing as an example. The print data editing unit208 reads PIN information designated by the print setting editing unit206 from the print setting information received from the OS or reads thePIN information from the shared information 209, and adds the PINinformation to the print setting attribute information included in theprint data.

The OS transmits the print data edited by the print data editing unit208 to the printing apparatus 102. The printing apparatus 102 performsprinting on a sheet surface based on the print data transmitted from theprint data editing unit 208.

The expansion application 204 includes the print function expansion unit207. The print function expansion unit 207 can edit the print functioninformation 203 (PDC) generated by the print data generation software202 or the OS. The print function expansion unit 207 can thereby add afunction provided by the expansion application 204, add a functionsupported by the printing apparatus 102 but not by the print datageneration software 202, and/or add an exclusive relationship betweensetting values of print functions. The OS activates the print functionexpansion unit 207 when the expansion application 204 is firstassociated with the printing apparatus 102 and the print data generationsoftware 202. The OS may also activate the print function expansion unit207 at other timing, such as when the OS is activated. This enables theprint function expansion unit 207 to detect an expansion function andadd the expansion function to the print function information 203 in acase where an option device (e.g., a finisher) is added to the printingapparatus 102 afterward and a print-related function is expanded.

The configuration of the expansion application 204 for implementing thepresent exemplary embodiment is not limited to the one including all theforegoing functions (units). The expansion application 204 may includeonly some of the functions or include other functions. The expansionapplication 204 is sometimes referred to simply as print software. Asdescribed above, the expansion application 204 includes at least one ofthe following functions: displaying a setting screen (print settingscreen expansion unit 205), editing intermediate data to be input to theprint data generation software 202 (print setting editing unit 206),editing print data to be input to the printing apparatus 102 (print dataediting unit 208), and expanding a function that can be designated bythe print data generation software 202 (print function expansion unit207).

Print Function Information Editing Processing of Print FunctionExpansion Unit

FIG. 3 is a flowchart illustrating a main processing procedure in printfunction information editing processing performed by the print functionexpansion unit 207 of the present printing system. In the followingdescription, the print function expansion unit 207 may be described asthe agent of the processes, whereas the corresponding functions areactually implemented by the CPU 111 executing the respectivecorresponding programs.

The procedure described in FIG. 3 is started by the OS activating theprint function expansion unit 207 at timing when the expansionapplication 204 is first associated.

In step S301, the print function expansion unit 207 issues an IPPGet-Printer-Attributes operation to the printing apparatus 102. Aresponse received from the printing apparatus 102 by this operation isstored in the RAM 113. The print function expansion unit 207 maydirectly issue the IPP Get-Printer-Attributes operation, or makes the OSissue the IPP Get-Printer-Attributes operation by using the API of theOS. The Get-Printer-Attribute operation is capable of designation of theattributes to be requested. The response received from the printingapparatus 102 is data indicating the attributes of the printingapparatus 102. An example of the response will be described below withreference to FIG. 4A. The print function expansion unit 207 may requestonly the attributes illustrated in FIG. 4A that are used in processingto be described below, or request all attributes without any attributedesignation.

In step S302, the print function expansion unit 207 initializes N to 1.N=1 indicates that function 1, which is the first function, is to beprocessed.

In step S303, the print function expansion unit 207 checks whetherfunction N is included in an expansion function list. An example of theexpansion function list will be described with reference to FIG. 5 .FIG. 5 illustrates an expansion function list 501, which is stored inthe external storage device 114 as one of configuration files of theexpansion application 204. The expansion function list 501 listsfunctions to be added by the expansion application 204, listing acorrespondence between feature names in a PT and the names of IPPprinter attributes. A printer attribute refers to attribute informationindicating a function of the printing apparatus 102 that can bedesignated (capability of the printing apparatus 102). The feature nameson the expansion function list 501 may also include information about anamespace as appropriate. The same applies to subsequent processing forstoring a feature name of the expansion function list 501. Since theexpansion function list 501 illustrated in FIG. 5 includes a recordrelated to function 1, the determination result of step S303 becomesYES.

In step S304, the print function expansion unit 207 determines whetherthe search feature name of function N on the expansion function list 501is included in the PDC. The print function expansion unit 207 can referto or modify the PDC.

FIG. 6A illustrates an example of the PDC. A PDC 601 illustrated in FIG.6A includes information about supported functions (Feature), informationabout setting values (Option) of specific functions, and exclusioninformation indicating that specific functions are not selectable at thesame time. Information 602 indicates that a borderless printing function(PageBorderless) is supported. Information 603 indicates that twosetting values “None” and “Borderless” can be designated for theborderless printing function. PageBorderless is preceded by “psk:”,which represents a namespace and indicates who has defined the functionPageBorderless in what specification. Information 604 representsexclusion information indicating that the Borderless setting and amedium size NorthAmericaLetter are not selectable at the same time.

Return to the processing of step S304. Since the search feature name offunction 1 on the expansion function list 501 illustrated in FIG. 5 is*BorderlessEx*, the print function expansion unit 207 searches the PDCfor a feature name (function-indicating information) includingBorderlessEx. The symbol * represents an arbitrary character string. Asdescribed above, the PDC, which is the print function information 203,can be dynamically generated by the OS or the print data generationsoftware 202 based on the information obtained from the printingapparatus 102. What feature name a print function is added in thereforedepends on the specifications of the OS or the print data generationsoftware 202. The print function expansion unit 207 can more reliablysearch for the corresponding function by searching for a partial matchwith the feature name as described above.

If the determination of step S304 is YES, function N has already beenadded as a function that can be designated to the PDC, which is theprint function information 203, by the OS or the print data generationsoftware 202. In such a case (YES in step S304), the processing proceedsto step S305. In contrast, if the PDC has contents, such as those of thePDC 601, there is no feature name including the name BorderlessEx in thePDC 601. In such a case (NO in step S304), the processing proceeds tostep S306.

In step S305, the print function expansion unit 207 adds the featurename found in the PDC to a function map list. An example of the functionmap list will be described with reference to FIG. 7 . FIG. 7 illustratesa function map list 701, which is an example of the function map list.The function map list 701 is stored in the shared information 209 thatthe units of the expansion application 204 can read and write. The printfunction expansion unit 207 stores a feature name 703 found in the PDCby the search in step S304 and a feature name 702 of the correspondingfunction on the expansion function list 501 in association with eachother. This enables the expansion application 204 to determine that thefunction added by the OS or the print data generation software 202 andthe function added by the print function expansion unit 207 inprocessing described below represent the same function. The feature name703 in the PDC may be configured to be stored with the namespaceincluded as appropriate.

After step S305, the processing proceeds to step S312. In step S312, theprint function expansion unit 207 proceeds to the processing of the nextfunction on the expansion function list 501 (N=N+1).

In step S306, the print function expansion unit 207 determines whether apublic printer attribute of function N on the expansion function list501 is included in the Get-Printer-Attributes response stored in the RAM113 in step S301. The public printer attribute is a standard printerattribute defined in the IPP specification.

FIG. 4A schematically illustrates an example of theGet-Printer-Attributes response. A Get-Printer-Attributes response 401includes printer attributes, such as media-supported andcij-print-borderless-expandlevel. In other words, theGet-Printer-Attribute response 401 is attribute information indicatingfunctions of the printing apparatus 102 that can be designated(capabilities of the printing apparatus 102). Information 402 is a listof medium sizes that can be designated in the printing apparatus 102.The information 402 indicates that Letter size (na_letter_8.5×11 in) issupported. Information 403 indicates combinations of possible printmargins of the printing apparatus 102. The information 403 indicatesthat the printing apparatus 102 supports the borderless printingfunction, because all the combinations of the top, left, right, andbottom margins include 0. Information 404 represents a protruding amountfunction during borderless printing (borderless protruding amountfunction). The information 404 indicates that one of three levelslevel0, level1, and level2 can be selected. A printer attribute startingwith cij is a private printer attribute originally defined by the vendordeveloping the printing apparatus 102, not a standard public printerattribute defined in the IPP specification.

The PDC 601 is an example of the PDC generated by the OS or the printdata generation software 202 based on the response 401. The information(printer attribute) 403 included in the response 401 is a public printerattribute. Since the public printer attribute is a standard one definedin the IPP specification, information 602 related to the borderlessprinting function is added to the PDC 601 by the OS or the print datageneration software 202 based on the information (printer attribute) 403if the OS supports the function (borderless printing function). However,some functions can be unsupported by the OS despite their public printerattributes. In such a case, the OS or the print data generation software202 is unable to interpret the printer attributes, and the functionscorresponding to the printer attributes are not included in the PDC 601.The information (printer attribute) 404 included in the response 401 isa private printer attribute. Since the private printer attribute isattribute information unique to the vendor, the OS or the print datageneration software 202 is unable to interpret the private printerattribute. In such a case, the function corresponding to the printerattribute 404 is thus not included in the PDC 601, either. Theprocessing performed by the print function expansion unit 207 in stepsS306 to S311 is intended to add such functions to the PDC 601.

Return to the description of step S306. The Get-Printer-Attributesresponse 401 does not include print-borderless-expandlevel, which is thepublic printer attribute of function 1, on the expansion function list501. The determination of step S306 is therefore NO, and the processingproceeds to step S309.

In step S309, the print function expansion unit 207 checks whether theprivate printer attribute of function N on the expansion function list501 is included in the Get-Printer-Attributes response 401 stored in theRAM 113 in step S301. The Get-Printer-Attributes response 401 includescij-print-borderless-expandlevel (information 404 illustrated in FIG.4A), which is the private printer attribute of function 1, on theexpansion function list 501. The determination of step S309 is thereforeYES, and the processing proceeds to step S310.

In step S310, the print function expansion unit 207 updates an addedfunction list based on the information about the private printerattribute of function N on the expansion function list 501. An exampleof the added function list will be described with reference to FIG. 8A.FIG. 8A illustrates an added function list 801, which is stored in theshared information 209 that the units of the expansion application 204can read and write. The print function expansion unit 207 stores, on theexpansion function list 501, the feature name of function N and theprivate printer attribute in association with each other. In thisexample, the print function expansion unit 207 stores a feature name802, which is PageBorderlessExpandLevel of function 1 on the expansionfunction list 501, and a private printer attribute name 803, which iscij-print-borderless-expandlevel on the expansion function list 501, inassociation with each other. The print function expansion unit 207further stores the setting values of the printer attributecij-print-borderless-expandlevel in the response 401, e.g., level0,level1, and level2 as setting values 805 of the printer attribute offunction 1. The print function expansion unit 207 also determinesoptions 804 of the feature to be associated, and stores the settingvalues of the printer attribute of function 1 in association with theoptions 804. The print function expansion unit 207 retains combinationsof options that can be designated for specific features as informationin advance, and determines the options 804 based on the information.Alternatively, the print function expansion unit 207 may set the samevalues as the setting values 805 of the printer attribute in the options804.

Such processing enables the expansion application 204 to refer to acorrespondence between the function expanded by the print functionexpansion unit 207 (expansion function) and the print setting attributeinformation to be notified to the printing apparatus 102 when thefunction is designated.

In step S311, the print function expansion unit 207 updates the PDCbased on the information about the private printer attribute of functionN on the expansion function list 501. FIG. 6B illustrates a PDC 605,which is an example of the PDC updated in the processing of step S311.The print function expansion unit 207 refers to the added function list801 to determine the feature and options to be added, and updates thePDC. The print function expansion unit 207 adds the feature name 802PageBorderlessExpandLevel and three pieces of options 804, which are thesetting values (information related to the function) of the feature name802, e.g., Level_0, Level_1, and Level_2, to the PDC based on the formatof the PDC. Information 607 is an example of the added information. Theprint function expansion unit 207 further adds, to the PDC, namespaceinformation 606 about the added function. If the corresponding namespacehas already been added to the PDC, the print function expansion unit 207does not add the namespace information 606. By such processing, thefunction PageBordelessExpandLevel (borderless protruding amountfunction) for indicating the borderless protruding amount is added as afunction that can be designated by the print data generation software202.

In step S312, the print function expansion unit 207 adds 1 to N. Theprocessing returns to step S303. The processing of steps S303 to S312 isrepeated while there is function N on the expansion function list 501.If function N is determined to not be included in the expansion functionlist 501 in step S303 (NO in step S303), the processing of thisflowchart ends.

If the Get-Printer-Attributes response 401 includesprint-borderless-expandlevel (YES in step S306), the processing proceedsto step S307. In steps S307 and S308, the print function expansion unit207 performs similar processing to that performed based on the privateprinter attribute in steps S310 and S311, based on the public printerattribute. Specifically, the public printer attribute nameprint-borderless-expandlevel is stored as the printer attribute offunction N in the added function list 801.

The above is the print function information edit processing of the printfunction expansion unit 207. By using this processing, functionssupported by the printing apparatus 102 can be expanded as those of theprint data generation software 202. The expanded functions can bedesignated by the user on a print setting screen illustrated in FIG. 10described below. Even in a case where printing apparatuses 102 returndifferent printer attributes for a specific function, the functions canbe expanded as the same function. In the flowchart illustrated in FIG. 3, two types of printer attributes, e.g., a public printer attribute anda private printer attribute, are added as the same function. However,the types of printer attributes are not limited to the two. Two or moretypes of other printer attributes with different names can be expandedas the same function. In the flowchart illustrated in FIG. 3 , if afunction has already been added to the PDC by the OS or the print datageneration software 202, the print function expansion unit 207 does notadd the function to the PDC redundantly. In other words, a plurality ofattributes to be handled as the same function is always added to theprint data generation software 202 as a single function. In addition,setting values that can be designated by the connected printingapparatus 102 are added as those of the function. A mechanism similar tothat of the present procedure may be configured such that, if a functionhas already been added by the OS or the print data generation software202 but with a setting value or values lacking, the print functionexpansion unit 207 originally adds only the setting value(s).

Example of PC

An example of the PC generated based on the PDC 605 expanded by theprint function expansion unit 207 will now be described with referenceto a PC 901 illustrated in FIG. 9 . The PDC 601 is converted into the PC901 by the OS or the print data generation software 202. Alternatively,the expansion application 204 may be configured to convert the PDC 601into the PC 901. The PC 901 includes a feature 902PageBorderlessExpandLevel that is added based on the information 607(Feature), which has been added to the PDC 605 by the print functionexpansion unit 207.

Screen Example Displayed by Print Setting Screen Expansion Unit

The print setting screen displayed based on the generated PC 901 willnow be described with reference to FIG. 10 . FIG. 10 illustrates a printsetting screen 1000, which is an example of the screen that the printsetting screen expansion unit 205 displays based on the PC 901. Theprint setting screen expansion unit 205 is called by the OS when theuser gives an instruction to display a print setting screen from thedrawing application 201. The print setting screen expansion unit 205displays a screen on which the user can designate a print function thatcan be designated by the print data generation software 202, based onthe PC obtainable from the OS.

Based on the feature 902 included in the PC 901, the print settingscreen expansion unit 205 provides a print setting screen to which acontrol 1001 (setting item) for designating the protruding amount duringborderless printing is added. The control 1001 is capable of selectingany one of three options of the feature 902, e.g., Level_0, Level_1, andLevel_2.

In generating this print setting screen 1000, the print setting screenexpansion unit 205 refers to the function map list 701 included in theshared information 209 and adds the same control for the two featuresassociated. For example, the print setting screen expansion unit 205adds the same control 1001 both in the case where the PC 901 includesthe feature PageBorderlessExpandLevel and in the case where the PC 901includes a feature PageBorderlessExLevel.

As described above, the print setting screen expansion unit 205 does notdistinguish if a specific function is added by the OS or the print datageneration software 202, added by the print function expansion unit 207based on a public printer attribute returned from the printing apparatus102, or added by the print function expansion unit 207 based on aprivate printer attribute returned from the printing apparatus 102. Thatis, the print setting screen expansion unit 205 can configure a singlecontrol from which the user can designate the function on the printsetting screen. Moreover, the present exemplary embodiment is alsoapplicable even in a case where an application not capable ofdistinguishing the foregoing three cases obtains the PC 901 directly andconstitutes the print setting screen. Specifically, by obtaining the PCto which a specific function is added, the drawing application 201 canconfigure a single control from which the user can designate thefunction.

Processing Procedure of Print Data Editing Unit

Processing for editing print data (print data editing processing) willnow be described. The processing is performed by the print data editingunit 208 after an instruction concerning print settings is given by theuser on the print setting screen.

FIG. 11 is a flowchart illustrating a main processing procedure in theprint data editing processing of the print data editing unit 208 in thepresent printing system. In the following description, the print dataediting unit 208 may be described as the agent of the processes, whereasthe corresponding functions are implemented by the CPU 111 executing therespective corresponding programs.

The procedure of FIG. 11 is started when the print data editing unit 208is activated by the OS.

In step S1101, print data generated by the print data generationsoftware 202 is passed to the print data editing unit 208. The printdata editing unit 208 initially obtains a PT from the OS. The PT isinformation generated by the print setting screen expansion unit 205.The PT is print setting information indicating print settings that theuser has designated based on the PC. The PT can be edited by the printsetting editing unit 206, in which case the print data editing unit 208can obtain the edited PT. The print data editing unit 208 may performthe following processing based not on the PT but on a PT included in theshared information 209 and on information equivalent to the PT. In sucha case, the print setting screen expansion unit 205 or the print settingediting unit 206 stores the PT and the equivalent information in theshared information 209 so that the print data editing unit 208 can referto the PT and the equivalent information afterward.

In step S1102, the print data editing unit 208 initializes N to 1.

In step S1103, the print data editing unit 208 determines whetherfunction N is included in the added function list 801 in the sharedinformation 209. Since function 1 is included in the added function list801 here, the determination of step S1103 is YES. If function N is notincluded (NO in step S1103), the print data editing unit 208 determinesthat there is no more function to be added to the print data, and theprocessing ends. A case where function 1 is not included in the addedfunction list 801 refers to where all the print settings designated bythe user are standard functions, not expansion functions. Thus, thiscase refers to where all the print settings have already been processedby the print data generation software 202.

If function N is included (YES in step S1103), the processing proceedsto step S1104. In step S1104, the print data editing unit 208 determineswhether the feature name of function N is included in the PT. If thefeature name is not included (NO in step S1104), the processing proceedsto step S1106. Suppose here that the feature name of function 1,PageBorderlessExpandLevel, is included in the PT. If the feature name isincluded (YES in step S1104), the processing proceeds to step S1105.

In step S1105, the print data editing unit 208 refers to the addedfunction list 801 and adds the setting value of the printer attributecorresponding to the option of the feature in the PT to the printsetting attribute information (attribute information for designatingprint settings) included in the print data. FIG. 4B illustrates anexample of the print setting attribute information in the IPP printdata. Data 1401 indicates a Validate-Job operation, an operation issuedat the beginning of the IPP print data. The data 1401 indicating theValidate-Job operation includes job-attributes-tag 1402 indicating theprint setting attribute information. In the PT, Level_1 is designated asthe option of PageBorderlessExpandLevel. The print data editing unit 208refers to the added function list 801 in the shared information 209, andadds the setting value level1 corresponding to Level_1 as the settingvalue for the printer attribute name cij-print-borderless-expandlevel.Information 1403 represents information to be added. If a Print-Joboperation is used instead of the Validate-Job operation or a series ofoperations, the print data editing unit 208 adds the information 1403 tothe Print-Job operation.

In step S1106, the print data editing unit 208 adds 1 to N. Theprocessing returns to step S1103. The print data editing unit 208repeats the processing of steps S1103 to S1106 while there is functionN.

The above is the procedure for the print data editing processing of theprint data editing unit 208. By using this procedure, if a functionexpanded by the print function expansion unit 207 (expansion function)is designated by the user on the print setting screen, the print datacan be edited based on the designation. A proper instruction to performthe expansion function can thus be given to the printing apparatus 102.In the case of the present exemplary embodiment, an instruction aboutthe borderless protruding amount function is issued to the printingapparatus 102. If the printing apparatus 102 supports the attributecij-print-borderless-expandlevel, the print data editing unit 208 addsthe attribute information to the print data. If the printing apparatus102 supports the attribute print-borderless-expandlevel, the print dataediting unit 208 adds the attribute information to the print data. Ifthe function is added by the OS or the print data generation software202, the print data generation software 202 adds the attributeinformation to the print data. The print data editing unit 208 thus willnot add the attribute information redundantly.

As described above, the expansion application 204 according to thepresent exemplary embodiment can configure the functions supported bythe printing apparatus 102 so that the function can be designated by theuser. In the present exemplary embodiment, the expansion application 204expands the functions based on the attribute information included in theattribute data obtained from the printing apparatus 102. If theconnected printing apparatus 102 supports a specific function,designation of the function is thereby enabled. If the connectedprinting apparatus 102 does not support a specific function, thefunction will not be added. Even in a case where different printerattributes are returned for the same function depending on the type ofprinting apparatus 102 connected, the same control item is displayed onthe print setting screen. The user can thus designate such attributes asthe same function on the print setting screen. While the presentexemplary embodiment has been described by using the expansion of theborderless protruding amount function as an example, the presentexemplary embodiment is also applicable to other functions. If aplurality of functions has been added to the expansion function list501, the expansion application 204 can add the plurality of functions.

Second Embodiment

A second exemplary embodiment will now be described. The presentexemplary embodiment describes a configuration for adding only a settingvalue or values of a function if the function for the expansionapplication 204 to add has already been supported by the print datageneration software 202. Components and processes not mentioned beloware similar to those of the first exemplary embodiment. A descriptionthereof will thus be omitted.

FIG. 12 is a flowchart illustrating a main processing procedure in printfunction information editing processing of a print function expansionunit 207 according to the present printing system. In the followingdescription, the print function expansion unit 207 may be described asthe agent of the processes, whereas the corresponding functions areimplemented by a CPU 111 executing the respective correspondingprograms.

The processing of steps S1201 to S1212 illustrated in FIG. 12 is similarto the processing of steps S301 to S312 in FIG. 3 and thus a descriptionthereof is omitted, except in the following points. A first differenceis that in the present exemplary embodiment, the print functionexpansion unit 207 proceeds, after the processing of step S1205, not tostep S1212 but to step S1206. Specifically, the print function expansionunit 207 continues the expansion processing of step S1206 and thesubsequent steps even if the function to be expanded has already beensupported by the print data generation software 202 (i.e., even if thefunction is a standard attribute defined in the IPP specification). Asecond difference is that the update processing of steps S1207 and 1208and that of steps S1210 and S1211 are different from those illustratedin FIG. 3 . A description will be given below by using the updateprocessing of steps S1210 and S1211 as an example.

FIG. 13A illustrates an example of a PDC before edited by the printfunction expansion unit 207 according to the present exemplaryembodiment. A PDC 1301 includes a feature 1302 PageBorderlessExLevelrepresenting a borderless protruding amount function. That the feature1302 represents the borderless protruding amount function has beendetermined by the determination processing of step S1204 based on anexpansion function list 501. In the PDC 1301, the feature 1302 supportstwo options Level_0 and Level_1. Suppose that, like the first exemplaryembodiment, a Get-Printer-Attributes response (attribute data obtainedfrom a printing apparatus 102) in step S1201 has the same contents asthose of the response 401 illustrated in FIG. 4A. The printer attributerepresenting the borderless protruding amount function included in theresponse 401, cij-print-borderless-expandlevel (information 404),supports three setting values level0, level1, and leve12. In otherwords, although the connected printing apparatus 102 has three settingvalues of the borderless protruding amount function that can bedesignated, print data generation software 202 has only two settingvalues that can be designated.

FIG. 8B illustrates an added function list 806, which is an example ofthe added function list updated by the print function expansion unit 207in the processing of step S1210. In the processing of step S1210, theprint function expansion unit 207 compares the options of function Nsupported by the PDC 1301 with the setting values of function N includedin the response 401, and determines whether there is a setting valueincluded only in the response 401. The print function expansion unit 207sets the setting values of the printer attribute corresponding to theoptions already existing in the PDC 1301 to “none” on the added functionlist 806. As for the setting value that does not exist in the PDC 1301and is included in the response 401, the print function expansion unit207 stores the setting value as a new setting value (information 807),and determines and stores a corresponding option name. As for thefeature name of function N, the print function expansion unit 207 storesthe feature name of function N supported by the PDC 1301.

In step S1211, the print function expansion unit 207 updates the PDC1301. FIG. 13B illustrates a PDC 1303, which is an example of theupdated PDC 1301. The print function expansion unit 207 adds an option1306 Level_2 to a feature 1305 PageBorderlessExLevel already existing asfunction N. The print function expansion unit 207 may also add anamespace 1304 as the namespace of the option 1306.

As described above, if a specific function has already been supported bythe print data generation software 202, the print function expansionunit 207 according to the present exemplary embodiment can expand only alacking setting value or values of the function. If function N is notincluded in the PDC, then in the processing of steps S1210 and S1211,the print function expansion unit 207 expands the function as in theprocessing of steps S310 and S311. The processing of steps S1207 andS1208 is performed in a similar manner to that of steps S1210 and S1211based on information about a public printer attribute.

Like the first exemplary embodiment, a print data editing unit 208according to the present exemplary embodiment performs the print dataediting processing illustrated in FIG. 11 . Suppose, for example, thatfunction N is PageBorderlessExLevel and the option ofPageBorderlessExLevel in the PT is Level_1. On the added function list806 according to the present exemplary embodiment, the setting value ofthe printer attribute corresponding to Level_1 is “none”. In such acase, the print data editing unit 208 determines that the setting valuecorresponding to the option has already been added by the print datageneration software 202, and does not add a setting value in step S1105.In contrast, suppose that the option of PageBorderlessExLevel in the PTis Level_2. On the added function list 806, the setting value of theprinter attribute corresponding to Level_2 is level2. In such a case,the print data editing unit 208 determines that no setting valuecorresponding to the option is added by the print data generationsoftware 202, and adds level2 to the print data as the setting value offunction N.

The expansion application 204 according to the present exemplaryembodiment can expand the setting values of functions already supportedby the print data generation software 202. For example, the presentexemplary embodiment is applicable to a case where a standard functionaccording to the IPP specification, such as designation of a sheet typeduring printing, has different setting values depending on theconfiguration of the printing apparatus 102. In other words, theexpansion application 204 can maintain the functions already supportedby the print data generation software 202 intact and add only settingvalues. The setting value is added based on the attribute informationabout the attribute data obtained from the printing apparatus 102.Designation of a specific setting value is therefore enabled if theconnected printing apparatus 102 supports the specific setting value. Ifthe connected printing apparatus 102 does not support a specific settingvalue, the setting value will not be added. Take the borderlessprotruding amount function described in the present exemplary embodimentas an example. If a connected device A can designate the protrudingamount in three levels, three levels of designation are made possible.If a connected device B can designate the protruding amount in fivelevels, five levels of designation are made possible. While the presentexemplary embodiment has been described by using the borderlessprotruding amount function and sheet types as examples, the presentexemplary embodiment is also applicable to other print functionssupported by the printing apparatus 102. As illustrated in theflowchart, two or more functions can be added, and only setting valuescan be added to some of the functions.

Third Embodiment

A third exemplary embodiment will now be described. In the presentexemplary embodiment, some processes are added to the processing of thefirst exemplary embodiment, whereby an expansion application 204 canprovide functions even in cases where the functions are unable to beexpanded in the first exemplary embodiment. Components and processes notmentioned below are similar to those of the first exemplary embodiment.

The print function information editing processing of the print functionexpansion unit 207 illustrated in FIG. 3 is configured such that if thedetermination of step S309 is NO, the print function expansion unit 207performs processing similar to that of steps S310 and S311. FIG. 8Cillustrates an added function list 808 generated by the print functionexpansion unit 207 in such processing. The print function expansion unit207 stores information 809 (“none”) indicating absence of acorresponding printer attribute to the added function and its settingvalues. In such a case, if the function is selected by the user, theprinting apparatus 102 is determined to not support the function.

In the print data editing processing of the print data editing unit 208illustrated in FIG. 11 , if any of the printer attributes of thefunctions in the added function list includes “none”, the print dataediting unit 208 converts the format of the print data. Take the IPPClass Driver as an example. With the print data in the IPP format, thesatisfaction of the foregoing condition indicates that the printingapparatus 102 is unable to perform the print function designated by theuser in the IPP format. In such a case, the print data editing unit 208converts the print data of the IPP format into print data of differentformat in which the user-designated print function can be used. Forexample, a print data format specific to the vendor providing theexpansion application 204 can usually use all the functions provided bythe printing apparatus 102. The print data editing unit 208 converts theprint data of the IPP format into the foregoing print data formatspecific to the vendor, for example.

Such a configuration can enable designation of functions that aresupported by the printing apparatus 102 and unable to be designated inthe format of print data generated by the print data generation software202 by using the expansion application 204. Moreover, the configurationof the present exemplary embodiment may be combined with that of thesecond exemplary embodiment so that print data is converted into printdata in different format if the setting value of the print functiondesignated by the user is not executable in the IPP format. The use ofthe expansion application 204 can thus enable designation of settingvalues that are supported by the printing apparatus 102 and unable to bedesignated in the format of print data generated by the print datageneration software 202.

Other Embodiments

Embodiment(s) of the present invention can also be realized by acomputer of a system or apparatus that reads out and executes computerexecutable instructions (e.g., one or more programs) recorded on astorage medium (which may also be referred to more fully as a‘non-transitory computer-readable storage medium’) to perform thefunctions of one or more of the above-described embodiment(s) and/orthat includes one or more circuits (e.g., application specificintegrated circuit (ASIC)) for performing the functions of one or moreof the above-described embodiment(s), and by a method performed by thecomputer of the system or apparatus by, for example, reading out andexecuting the computer executable instructions from the storage mediumto perform the functions of one or more of the above-describedembodiment(s) and/or controlling the one or more circuits to perform thefunctions of one or more of the above-described embodiment(s). Thecomputer may comprise one or more processors (e.g., central processingunit (CPU), micro processing unit (MPU)) and may include a network ofseparate computers or separate processors to read out and execute thecomputer executable instructions. The computer executable instructionsmay be provided to the computer, for example, from a network or thestorage medium. The storage medium may include, for example, one or moreof a hard disk, a random-access memory (RAM), a read only memory (ROM),a storage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™),a flash memory device, a memory card, and the like.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

What is claimed is:
 1. A control method of an information processingapparatus on which an expansion application configured to expand afunction of print data generation software configured to generate printdata runs, the control method comprising: obtaining attribute data on aprinting apparatus, the attribute data being output from the printingapparatus; obtaining data indicating a print function; and addinginformation related to a specific function based on attributeinformation included in the obtained attribute data if informationindicating the specific function is not included in the obtained dataindicating the print function, wherein a setting screen including asetting item of the specific function is displayed based on the addedinformation related to the specific function.